草庐IT

Swift AsyncThrowingStream 和 AsyncStream 代码实例详解

全部标签

ruby - 分析 Ruby 代码

除了ruby​​-prof和核心Benchmark类,您还使用什么来分析您的Ruby代码?特别是,您如何找到代码中的瓶颈?几乎感觉我需要使用自己的小工具来弄清楚所有时间都花在了我的代码中。我知道ruby​​-prof提供了这个,但坦率地说,输出非常困惑,并且不容易找出您自己代码的哪些实际block是问题的根源(它告诉您调用了哪些方法虽然是最多的时间)。所以我并没有真正从中得到我想要的那么多,也没有真正能够利用它。也许我做错了?有其他选择吗?Google搜索没有为我带来任何结果。 最佳答案 要真正深入研究您的代码,请尝试stackpr

ruby - 如何在 sinatra 中引发自定义错误代码?

我在我的sinatra应用程序中执行了以下操作:disable:show_exceptionsdisable:raise_errorserrordohaml:error,:locals=>{:error_message=>request.env['sinatra.error'].to_s}endget'/error'doraise"ERROR!!"end如果我访问/error,我会得到一个500-InternalServerError响应代码,这是上帝想要的。但是如何将代码更改为404或501等?答案:disable:show_exceptionsdisable:raise_error

ruby - 如何调试 ruby​​ 代码?

我运行的是Ubuntu10.10。我只想调试一个简单的脚本。在花了半天时间试图弄清楚如何做到这一点后,我放弃了。我到底该怎么办?我从Ubuntu存储库安装了ruby-dev我运行了sudogeminstallruby​​-debug和sudogeminstallruby​​-debug-ide我尝试了几种不同的方法来完成这项工作。我试过require'ruby-debug'然后在代码的某处设置debugger。但是Ruby找不到ruby-debug。我尝试设置vim-ruby-debugger,这将花费ages来执行:RdebuggermyScript.rb并允许我设置断点,但似乎没有

ruby - 如何将一个模块包含到另一个模块中(将 AASM 代码和自定义状态重构到模块中)

我正在尝试重构一个super模型,该模型具有相当多行与状态和转换相关的ActsAsStateMachine代码,我希望将其重构为模块调用CallStates。#inlib/CallStates.rbmoduleCallStatesmoduleClassMethodsaasm_column:statusaasm_state:state1aasm_state:state2aasm_state:state3enddefself.included(base)base.send(:include,AASM)base.extend(ClassMethods)endend然后在模型中includeC

ruby - 仅当从命令行调用脚本时才运行代码

所以当我从命令行调用我的脚本时,我希望它接受一个int并使用该值做一些事情:rubyscript.rbputsARGV[0],etc...但是,每当加载或需要脚本而不是从命令行调用脚本时,我想完全跳过这部分代码。如何检测脚本是通过命令行调用还是刚刚加载?谢谢! 最佳答案 通常将它放在脚本的底部:if__FILE__==$0#thiswillonlyrunifthescriptwasthemain,notload'dorrequire'dend因为我喜欢在文件顶部看到主要操作,所以我通常将defrun!作为文件中的第一个方法,然后以以

ruby - 在 Ruby 中生成高斯(正态分布)随机数的代码

用ruby​​生成正态分布随机数的代码是什么?(注意:我回答了我自己的问题,但我会等几天再接受,看看是否有人有更好的答案。)编辑:为此,我查看了两次搜索产生的SO上的所有页面:+“正态分布”ruby和+高斯+随机ruby 最佳答案 Python的random.gauss()和Boost的normal_distribution都使用Box-Mullertransform,所以这对Ruby来说也应该足够好了。defgaussian(mean,stddev,rand)theta=2*Math::PI*rand.callrho=Math.s

ruby - Ruby 的 attr_accessor 如何产生类变量或类实例变量而不是实例变量?

如果我有一个带有attr_accessor的类,它会默认创建一个实例变量以及相应的getter和setter。但不是创建实例变量,有没有办法让它创建类变量或类实例变量呢? 最佳答案 像这样:classTYourClassclass您可以将此视为打开类的元类(类本身是其实例)并向其添加属性。attr_accessor是类Class的一个方法,它给类添加了两个方法,一个读取实例变量,一个设置实例变量。这是一个可能的实现:classClassdefmy_attr_accessor(name)define_methodnamedoinsta

ruby - 如何替换 ruby​​ 中模式的每个实例?

string.sub看起来它只替换了第一个实例。是否有可以替代所有模式的选项或其他方法?你能在perl之类的正则表达式中完成吗?(我觉得像r/blah/blah/)...并+1给任何能告诉我为什么string.sub只替换第一个匹配项的人? 最佳答案 String.gsub应该可以解决问题。引用文档:gsub(pattern,replacement)→new_strReturnsacopyofstrwiththealloccurrencesofpatternsubstitutedforthesecondargument.Thepat

ruby-on-rails - 如何在 Ruby 中创建一个新的 Date 实例

如何在给定日期的IRB中创建一个新的日期对象。以下无效。1.9.3p194:053>require'active_support'=>true1.9.3p194:054>Date.new=>#1.9.3p194:055>Date.parse('12/01/2012')NoMethodError:undefinedmethod`parse'forDate:Classfrom(irb):551.9.3p194:055>Date.new('12/01/2012')ArgumentError:wrongnumberofarguments(1for0) 最佳答案

ruby-on-rails - 如何从 Ruby on Rails 应用程序返回正确的 HTTP 错误代码

我有RoR3.0网络应用程序,它充当OAuthAPI提供程序。现在,在API中,我想向API使用者返回正确的HTTP错误代码。我该怎么做?例子如下:defdestroy_oauth@item=Item.find(params[:id])if(!@item.nil?&&@item.user_id==current_user.id)@item.destroyrespond_todo|format|format.jsformat.xmlendelseraiseActionController::RoutingError.new('Forbidden')endend因此,如果出现错误,我会尝试